/**══════════════════════════════════╗
*作    者：songbaobao                                                  ║
*职    业：我以我血荐轩辕                                              ║
*CSND地址：https://blog.csdn.net/weixin_43949535                       ║
**GitHub ：https://github.com/TsinghuaLucky912/My_own_C-_study_and_blog║
**GitEE  ：https://gitee.com/lucky912_admin/code-up_-pat               ║
*═══════════════════════════════════╣
*创建时间：2021年08月08日 23:40:51
*功能描述：C++基础知识的复习，详细可见博客
*
*
*═══════════════════════════════════╣
*结束时间:
*═══════════════════════════════════╝
//                .-~~~~~~~~~-._       _.-~~~~~~~~~-.
//            __.'              ~.   .~              `.__
//          .'//              西南\./联大               \\`.
//        .'//                     |                     \\`.
//      .'// .-~"""""""~~~~-._     |     _,-~~~~"""""""~-. \\`.
//    .'//.-"                 `-.  |  .-'                 "-.\\`.
//  .'//______.============-..   \ | /   ..-============.______\\`.
//.'______________________________\|/______________________________`.
*/

#include "main.h"

int main()
{
	/*
	* 创建一个窗口
	* 控制台窗口是可以自动创建的，图形窗口需要手动创建
	* 同时把控制台也创建出来 方便开发过程调试
	*/
	initgraph(WIDOWWIDTH+150, WIDOWHEIGHT, SHOWCONSOLE);
	//initgraph(WIDOWWIDTH, WIDOWHEIGHT);

	// 初始化一个飞机，设置飞机初始状态
	Planes plane(WIDOWWIDTH / 2, WIDOWHEIGHT - 130, true);
	
	// 初始化 20 个子弹，并设置初始状态
	int bulletNum = 20;
	vector<Bullets>bullets(bulletNum);

	// 初始化 4 个敌机(大中小 三种)，并设置初始状态
	int enemyNum = 4;
	vector<Enemys>enemys(enemyNum);
	
	while (true)
	{
		// 初始化图形窗口及绘制上述飞机 子弹 敌机
		gameInit(plane, bullets, enemys);

		// 上下移动飞机 初始speed为2
		gameControl(plane, 2, bullets);

		// 子弹移动，初始speed为3
		bulletMove(bullets, 3);

		// 敌机产生(每500ms一个)
		CallTimerFunc(enemyCreate, 500, enemys);
#if 0		
		// 这个速度太快 我心脏受不了
		enemyMove(enemys, 1);
#else
		// 敌机移动 控制10ms再移动，初始speed为1
		CallTimerFuncControlSpeed(enemyMove, 10, enemys, 1);
#endif
		// 击中敌机
		SuccessfullyHit(plane, enemys, bullets);
	}

	return 0;
}
/**
*备用注释：
*
*
*
*/
